package pl.rpr.rozklad;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.webkit.WebView;
import android.webkit.WebViewClient;

/**
 * Stałe
 *
 * @author Maciej Kaczor
 *
 */
interface CONST {
  public static final String ADRES_BAZOWY      = "http://www.mzd.czest.pl/rozklady/";
  public static final String ADRES_ROZKLADOW   = "http://www.mzd.czest.pl/rozklady/rozklady/";
  public static final String ADRES_PRZYSTANKOW = "http://www.mzd.czest.pl/rozklady/rozklady/przystan.htm";
  public static final String ADRES_AUTOBUSOW   = "http://www.mzd.czest.pl/rozklady/linie.htm";

  /**
   * uchwyt do przystanków 1 - url przystanku 2 - nazwa przystanku
   */
  public static final String RE_PRZYSTANKI     = "<LI><A\\sHREF=\"(.+?)\">(.+?)</A>";
  /**
   * uchwyt do autobusow 1 - url autobusu 2 - numer autobusu 3 - kierunek autobusu
   */
  public static final String RE_AUTOBUSY_P     = "<LI><A\\sHREF=\"\\.\\.\\/(.+?)\"><B>\\s(.+?)\\s</B>-\\s(.+?)</A>";
  /**
   * uchwyt do autobusów 1 - url autobusu 2 - numer autobusu
   */
  public static final String RE_NUMERY         = "<a\\shref=\"(rozklady/0.+?)\">(.+?)</a>";
  /**
   * ucwyt do kierunkow z autobusow 1 - kieunek autobusu
   */
  public static final String RE_KIERUNKI_N     = "<TD\\sALIGN=\"CENTER\" VALIGN=\"TOP\">kierunek:<BR><B>(.+?)</B></TD>";
  /**
   * uchwyt do listy przystankow z autobusow 1 - lista przystankow
   */
  public static final String RE_PRZYSTANKI_K_N = "<TD\\sVALIGN=\"TOP\"><UL>(.+?)</UL></TD>";

  /**
   * uchwyt do listy autobusow z listy list przystankow z autobusow 1 - adres rozkladu 2 - nazwa przystanku
   */
  public static final String RE_AUTOBUSY_P_K_N = "<LI><A\\sHREF=\"(0.+?)\">(?:<B>)?(.+?)(?:</B>)?</A>";
}

/**
 * Klasa ta dziedziczy po klasie WebViewClient<br />
 * Nadpisuje metodę shouldOverrideUrlLoading(WebView, String) aby po kliknięciu w dowolny link strona się nie
 * przeładowała<br />
 *
 * @author Maciej Kaczor<br />
 */
class MyWebViewClient extends WebViewClient {
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
    return true;
  }
}

class Polaczenie {
  Context  context;
  Activity activity;

  public Polaczenie(Context th) {
    this.context = th;
    this.activity = (Activity) th;
  }

  public void sprawdzPolaczenie() {
    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo wifi = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    NetworkInfo mobile = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    if (!wifi.isConnected() && !mobile.isConnected()) {
      AlertDialog.Builder builder = new AlertDialog.Builder(context);
      builder.setMessage("Nie można uzyskać połączenia z internetem.").setCancelable(false)
          .setNeutralButton("Wyjście", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
              activity.moveTaskToBack(true);
              dialog.cancel();
            }
          });
      AlertDialog dialog = builder.create();
      dialog.show();
    }
  }
}